//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
//
// (C) Copyright 2006 Marvell International Ltd.
// All Rights Reserved
//
#ifndef __KITL_CFG_H
#define __KITL_CFG_H

#include <oal_kitl.h>

//------------------------------------------------------------------------------
// Prototypes for PXA USB Serial KITL driver

BOOL USBInit(KITL_SERIAL_INFO *pInfo);
UINT16 USBKitlTx(UINT8 *pData, UINT16 size);
UINT16 USBKitlRx(UINT8 *pData, UINT16 size);
VOID   USBKitlEnableInt(VOID);
VOID   USBKitlDisableInt(VOID);

#define OAL_USBDRV_PXA   { \
    USBInit, NULL, USBKitlTx, NULL, USBKitlRx, \
    USBKitlEnableInt, USBKitlDisableInt, \
    NULL, NULL, NULL \
}

//------------------------------------------------------------------------------
// Prototypes for SMSC LAN91Cxxx

BOOL   LAN91CInit(BYTE *pAddress, DWORD offset, USHORT mac[3]);
UINT16 LAN91CSendFrame(BYTE *pBuffer, DWORD length);
UINT16 LAN91CGetFrame(BYTE *pBuffer, UINT16 *pLength);
VOID   LAN91CEnableInts();
VOID   LAN91CDisableInts();
VOID   LAN91CCurrentPacketFilter(DWORD filter);
BOOL   LAN91CMulticastList(PUCHAR  pAddresses, DWORD count);
VOID   LAN91CPowerOn();

#define OAL_ETHDRV_LAN91C_LITTLETON   { \
    LAN91CInit, NULL, NULL, LAN91CSendFrame, LAN91CGetFrame, \
    LAN91CEnableInts, LAN91CDisableInts, \
    NULL, LAN91CPowerOn,  LAN91CCurrentPacketFilter, LAN91CMulticastList \
}

//------------------------------------------------------------------------------


OAL_KITL_ETH_DRIVER g_kitlEthSMSC91C111  = OAL_ETHDRV_LAN91C_LITTLETON;
OAL_KITL_ETH_DRIVER g_kitlEthNE2000      = OAL_ETHDRV_NE2000;
OAL_KITL_ETH_DRIVER g_kitlUsbRNDISPXA    = OAL_ETHDRV_USB_RNDIS ;


OAL_KITL_SERIAL_DRIVER g_kitlUsbSerPXA  = OAL_USBDRV_PXA;

OAL_KITL_DEVICE g_kitlDevices[] = {
    { 
        L"SMSC91C111", Internal, (LITTLETON_BASE_REG_PA_SMSC_ETHERNET + 0x300), 0, OAL_KITL_TYPE_ETH, 
        &g_kitlEthSMSC91C111
    },

    { 
        L"PXA_UDC", Internal, 0, MONAHANS_BASE_REG_PA_UDC, OAL_KITL_TYPE_SERIAL, 
        &g_kitlUsbSerPXA
    },
    {
	L"PXA_UDC_RNDIS", Internal, 0, MONAHANS_BASE_REG_PA_UDC, OAL_KITL_TYPE_ETH, 
        &g_kitlUsbRNDISPXA
    },
    {
        NULL, 0, 0, 0, 0, NULL
    }
};    

//------------------------------------------------------------------------------

#endif
